gtkentry: Use keycontroller on GtkCellEditable implementation
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 26 Jun 2018 13:29:54 +0000 (15:29 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Mon, 30 Jul 2018 11:14:12 +0000 (13:14 +0200)
gtk/gtkentry.c

index bbed89d601ef19e295841dba3d05e999ac9ccd94..634229978b298757e8f0686b6d9a1f72fff6a2dc 100644 (file)
@@ -4412,18 +4412,13 @@ gtk_cell_editable_entry_activated (GtkEntry *entry, gpointer data)
 }
 
 static gboolean
-gtk_cell_editable_event (GtkEntry *entry,
-                         GdkEvent *event,
-                         gpointer  data)
+gtk_cell_editable_entry_key_pressed (GtkEventControllerKey *key,
+                                     guint                  keyval,
+                                     guint                  keycode,
+                                     GdkModifierType        modifiers,
+                                     GtkEntry              *entry)
 {
   GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry);
-  guint keyval;
-
-  if (gdk_event_get_event_type (event) != GDK_KEY_PRESS)
-    return GDK_EVENT_PROPAGATE;
-
-  if (!gdk_event_get_keyval (event, &keyval))
-    return GDK_EVENT_PROPAGATE;
 
   if (keyval == GDK_KEY_Escape)
     {
@@ -4452,8 +4447,10 @@ gtk_entry_start_editing (GtkCellEditable *cell_editable,
 {
   g_signal_connect (cell_editable, "activate",
                    G_CALLBACK (gtk_cell_editable_entry_activated), NULL);
-  g_signal_connect (cell_editable, "event",
-                   G_CALLBACK (gtk_cell_editable_event), NULL);
+  g_signal_connect (gtk_entry_get_key_controller (GTK_ENTRY (cell_editable)),
+                    "key-pressed",
+                    G_CALLBACK (gtk_cell_editable_entry_key_pressed),
+                    cell_editable);
 }
 
 static void